/*
自定义数组扩容规则，当已存储元素数量达到总容量的 80%时，扩容 1.5 倍。
例如，总容量是 10，当输入第 8 个元素时，数组进行扩容，容量从 10 变 15。
*/

import java.util.Scanner;
import java.util.Arrays;

public class FourthQuestion
{
    public static void main(String[] args) {
        // 初始化一个长度为5的数组
        int arrslen = 5;
        String[] arrs = new String[arrslen];
        int num = 0;
        
        // 定义一个死循环读取输入，如果为quit则结束循环，否则将输入赋值给数组
        while (true) {
            System.out.println("当前数组为："+arrs.length+" 位数组");
            System.out.println("请为数组添加元素：");
            Scanner sa = new Scanner(System.in);
            String data = sa.next();
            
            if ("quit".equals(data)) {
                break;
            } else {
                arrs[num] = data;
                num += 1;
            }
            // 判断数组容量大于80%的时候扩容5为
            if (0.8 <= (1.0*num)/arrslen) {
                System.out.println("数组已使用："+num+"位，大于80%，开始扩容！");
                arrslen += 5;
                String[] tmparrs = new String[arrslen];
                for (int i=0; i < arrs.length; i++) {
                    tmparrs[i] = arrs[i];
                }
                arrs = tmparrs;
            }
            System.out.println(Arrays.toString(arrs));
        }
        
    }
}
